Introduction

The following project is a taste of the power StyleGAN 2 has to offer, in terms of Image Reconstruction problems.

In this project I dealth with reconstructing images with different forms of degradations, e.g., Blurry / BW / masked images.

The following lines contains some outputs examples after running the model using different modes, depending on the original image.

Hope you'll find it useful and have some fun using it!

Examples:

Image Colorization

For this section, I implemented a basic function which returns a greyscale image, given RGB images. The process was as follows:

a) Take the input image and align it.

b) If the input image is not already corrupted, we'll call colorization_mode inside invert_image, and send the greyscale image as the "original" input image to run_latent_optimization.

c) Inside the last function, after each iteration the NN outputs a synthetic output image. To make the NN deliver a colorized reconstruction of the image, we will take the synthetized image the GAN is generated on each step and convert it to a greyscale image using the colorization_mode before calculating the loss function.

In [ ]:
## Alan Turing's Colorization
tar = "/content/gdrive/MyDrive/input_img/inputs/alan_turing_grayscale.png"
outdir = "/content/gdrive/MyDrive/input_img/Alan"

alan_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, 'Alan Turing',num_steps=500,latent_dist_reg_weight=0.5 ,is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  481/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  482/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  483/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  484/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  485/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  486/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  487/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  488/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  489/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  490/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  491/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  492/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  493/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  494/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  495/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  496/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  497/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  498/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  499/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
step  500/500: percep_loss 0.15 latent_dist_reg 0.09 loss 0.19 
Elapsed: 80.8 s
In [ ]:
## Alan Turing's Colorization
tar = "/content/gdrive/MyDrive/input_img/inputs/alan_turing_grayscale.png"
outdir = "/content/gdrive/MyDrive/input_img/Alan/with\ 500\ and\ 0.01"

alan_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, 'Alan Turing',num_steps=500,latent_dist_reg_weight=0.01 ,is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  481/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  482/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  483/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  484/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  485/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  486/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  487/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  488/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  489/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  490/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  491/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  492/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  493/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  494/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  495/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  496/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  497/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  498/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  499/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
step  500/500: percep_loss 0.13 latent_dist_reg 0.76 loss 0.14 
Elapsed: 81.9 s
In [ ]:
## Alan Turing's Colorization
tar = "/content/gdrive/MyDrive/input_img/inputs/alan_turing_grayscale.png"
outdir = "/content/gdrive/MyDrive/input_img/Alan/with\ 600\ and\ 0.001"

alan_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, 'Alan Turing',num_steps=600,latent_dist_reg_weight=0.001 ,is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  581/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  582/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  583/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  584/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  585/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  586/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  587/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  588/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  589/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  590/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  591/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  592/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  593/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  594/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  595/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  596/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  597/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  598/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  599/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
step  600/600: percep_loss 0.12 latent_dist_reg 0.91 loss 0.12 
Elapsed: 98.1 s
In [ ]:
## Alan Turing's Colorization
tar = "/content/gdrive/MyDrive/input_img/inputs/alan_turing_grayscale.png"
outdir = "/content/gdrive/MyDrive/input_img/Alan/with\ 1500\ and\ 0.2"

alan_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, 'Alan Turing',num_steps=700,latent_dist_reg_weight=0.2 ,is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  681/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  682/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  683/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  684/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  685/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  686/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  687/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  688/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  689/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  690/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  691/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  692/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  693/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  694/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  695/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  696/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  697/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  698/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  699/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
step  700/700: percep_loss 0.13 latent_dist_reg 0.16 loss 0.16 
Elapsed: 114.4 s
In [ ]:
## Alan Turing's Colorization
tar = "/content/gdrive/MyDrive/input_img/inputs/alan_turing_grayscale.png"
outdir = "/content/gdrive/MyDrive/input_img/Alan/with\ 1500\ and\ 0.01"

alan_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, 'Alan Turing',num_steps=1500,latent_dist_reg_weight=0.9 ,is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step 1481/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1482/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1483/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1484/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1485/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1486/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1487/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1488/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1489/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1490/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1491/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1492/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1493/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1494/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1495/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1496/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1497/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1498/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1499/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
step 1500/1500: percep_loss 0.15 latent_dist_reg 0.06 loss 0.20 
Elapsed: 240.5 s
In [ ]:
## Tzlil's Colorization:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/colorization/with 900 and 0.1"

tzlil_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, "Tzlil Colorization", num_steps=900, latent_dist_reg_weight=0.1)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  881/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  882/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  883/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  884/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  885/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  886/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  887/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  888/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  889/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  890/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  891/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  892/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  893/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  894/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  895/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  896/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  897/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  898/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  899/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
step  900/900: percep_loss 0.28 latent_dist_reg 0.27 loss 0.31 
Elapsed: 143.6 s
In [ ]:
## Tzlil's Colorization:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/colorization/with 900 and 0.5"

tzlil_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, "Tzlil Colorization", num_steps=1200, latent_dist_reg_weight=0.5)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step 1181/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1182/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1183/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1184/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1185/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1186/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1187/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1188/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1189/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1190/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1191/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1192/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1193/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1194/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1195/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1196/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1197/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1198/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1199/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
step 1200/1200: percep_loss 0.32 latent_dist_reg 0.09 loss 0.36 
Elapsed: 189.9 s
In [ ]:
## Tzlil's Colorization:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/colorization/with 900 and 0.3"

tzlil_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, "Tzlil Colorization", num_steps=900, latent_dist_reg_weight=0.3)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  881/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  882/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  883/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  884/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  885/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  886/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  887/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  888/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  889/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  890/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  891/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  892/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  893/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  894/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  895/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  896/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  897/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  898/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  899/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
step  900/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.33 
Elapsed: 144.8 s
In [ ]:
## Tzlil's Colorization:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/colorization/with 1000 and 1"

tzlil_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, "Tzlil Colorization", num_steps=1000, latent_dist_reg_weight=1)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  981/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  982/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  983/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  984/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  985/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  986/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  987/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  988/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  989/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  990/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  991/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  992/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.40 
step  993/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
step  994/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
step  995/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
step  996/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
step  997/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
step  998/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
step  999/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
step 1000/1000: percep_loss 0.35 latent_dist_reg 0.04 loss 0.39 
Elapsed: 159.8 s
In [ ]:
## Tzlil's Colorization:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/colorization/with 900 and 0.001"

tzlil_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, "Tzlil Colorization", num_steps=900, latent_dist_reg_weight=0.001)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  881/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  882/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  883/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  884/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  885/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  886/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  887/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  888/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  889/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  890/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  891/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  892/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  893/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  894/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  895/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  896/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  897/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  898/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  899/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
step  900/900: percep_loss 0.29 latent_dist_reg 1.07 loss 0.29 
Elapsed: 142.3 s
In [ ]:
## Tirtza's Colorization:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/colorization/with 900 and 0.4 "

tirtz_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, "Tirtsa Colorization",num_steps=900,latent_dist_reg_weight=0.4)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  881/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  882/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  883/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  884/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  885/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  886/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  887/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  888/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  889/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  890/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  891/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  892/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  893/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  894/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  895/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  896/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  897/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  898/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  899/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
step  900/900: percep_loss 0.30 latent_dist_reg 0.12 loss 0.35 
Elapsed: 144.7 s
In [ ]:
## Tirtza's Colorization:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/colorization/with 900 and 0.6 "

tirtz_loss = invert_image(GRAYSCALE_DEGRADATION, tar,outdir, "Tirtsa Colorization",num_steps=900,latent_dist_reg_weight=0.6)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  881/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  882/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  883/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  884/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  885/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  886/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  887/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  888/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  889/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  890/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  891/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  892/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  893/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  894/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  895/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  896/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  897/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  898/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  899/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
step  900/900: percep_loss 0.32 latent_dist_reg 0.08 loss 0.37 
Elapsed: 144.2 s

Image Deblurring

For this section, I implemented a blurring function for a RGB images. The process was as follows:

a) Take the input image and align it.

b) Call blur_mode inside invert_image, and send the blurred image as the "original" input image to run_latent_optimization.

c) Inside the last function, after each iteration the NN outputs a synthetic output image. In order to make the NN result in a deblurred image, we will take the synthetized image, and blur it using the blur_mode before calculating the loss function.

In [ ]:
## Yann Lecun's Deblurring
tar = "/content/gdrive/MyDrive/input_img/inputs/yann_lecun_blur.png"
outdir = "/content/gdrive/MyDrive/input_img/yann/with 700 and 0.5"

yann_loss = invert_image(GAUSSIAN_BLUR_DEGRADATION, tar,outdir,'Yann Lecun' ,num_steps=700,latent_dist_reg_weight=0.5, is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  681/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  682/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  683/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  684/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  685/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  686/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  687/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  688/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  689/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  690/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  691/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  692/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  693/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  694/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  695/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  696/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  697/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  698/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  699/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
torch.Size([1, 3, 1084, 1024])
step  700/700: percep_loss 0.11 latent_dist_reg 0.12 loss 0.17 
Elapsed: 286.1 s
In [ ]:
## Yann Lecun's Deblurring
tar = "/content/gdrive/MyDrive/input_img/inputs/yann_lecun_blur.png"
outdir = "/content/gdrive/MyDrive/input_img/yann/with 700 and  0.1"

yann_loss = invert_image(GAUSSIAN_BLUR_DEGRADATION, tar,outdir,'Yann Lecun' ,num_steps=700,latent_dist_reg_weight=0.1, is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  681/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  682/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  683/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  684/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  685/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  686/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  687/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  688/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  689/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  690/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  691/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  692/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  693/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  694/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  695/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  696/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  697/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  698/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  699/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
torch.Size([1, 3, 1084, 1024])
step  700/700: percep_loss 0.08 latent_dist_reg 0.33 loss 0.11 
Elapsed: 286.6 s
In [ ]:
## Yann Lecun's Deblurring
tar = "/content/gdrive/MyDrive/input_img/inputs/yann_lecun_blur.png"
outdir = "/content/gdrive/MyDrive/input_img/yann/with 1000 and  0.001"

yann_loss = invert_image(GAUSSIAN_BLUR_DEGRADATION, tar,outdir,'Yann Lecun' ,num_steps=1000,latent_dist_reg_weight=0.001, is_input_degraded=True)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  981/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  982/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  983/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  984/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  985/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  986/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  987/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  988/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  989/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  990/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  991/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  992/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  993/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  994/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  995/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  996/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  997/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  998/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step  999/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
torch.Size([1, 3, 1084, 1024])
step 1000/1000: percep_loss 0.09 latent_dist_reg 1.07 loss 0.09 
Elapsed: 402.3 s
In [ ]:
## Tzlil's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/deblur"

tzlil_loss = invert_image(GAUSSIAN_BLUR_DEGRADATION ,tar,outdir, "Tzlil Deblurring", num_steps=1000,latent_dist_reg_weight=0.2)
# Using ldrw = 0.1 got creepy results
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  981/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  982/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  983/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  984/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  985/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  986/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  987/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  988/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  989/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  990/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  991/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  992/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  993/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  994/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  995/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  996/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  997/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  998/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step  999/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
torch.Size([1, 3, 1024, 1024])
step 1000/1000: percep_loss 0.13 latent_dist_reg 0.20 loss 0.17 
Elapsed: 274.0 s
In [ ]:
## Tirtza's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/deblur"

tirtz_loss = invert_image(GAUSSIAN_BLUR_DEGRADATION, tar,outdir, "Tirtsa Deblurring", num_steps=700,latent_dist_reg_weight=0.2)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  681/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  682/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  683/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  684/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  685/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  686/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  687/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  688/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  689/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  690/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  691/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  692/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  693/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  694/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  695/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  696/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  697/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  698/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  699/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
torch.Size([1, 3, 1024, 1024])
step  700/700: percep_loss 0.16 latent_dist_reg 0.22 loss 0.21 
Elapsed: 195.0 s

Inpainting

For this section, I implemented a function used to mask the image in a manner which mimics the making we asked to perform. The way I implemented it was as follows:

• Estimate what are the boundaries of the original masking provided for this exercise.

• Set all the pixels which falls inside the boundaries to zero. From here, all we got left to do is to figure out is where we should call the degrading function inside run_latent_optimization such that the image reconstruction raises a good result.

The first try was using the naïve approach I took on previous tasks, and it was calling it inside the dedicated section as described inside the Colab notebook. The results brought using this approach were odd looking, and, while watching the process as it goes, I noticed that the mask becomes grey, and realized it happened due to the performing down sampling to the synthesized image, which also changes the results. Another approach I took, was trying to manipulate the mask image bring a black mask, but this approach, again, brought some troubling looking results. Finally, after some time playing with the code, I figured out that maybe the thing that I needed to change was the point in the code where I call the degrading function, instead of changing the degrading function itself. I figured out that the location which brings the wanted results was after the down sampling, before calculating the loss.

In [ ]:
## Fei Fei's Inpainting
tar = "/content/gdrive/MyDrive/input_img/inputs/fei_fei_li_original.png"
outdir = "/content/gdrive/MyDrive/input_img/fei"

fei_loss = invert_image(INPAINTING_DEGRADATION,tar,outdir,"Fei Fei",num_steps=800)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  781/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  782/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  783/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  784/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  785/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  786/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  787/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  788/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  789/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  790/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  791/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  792/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  793/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  794/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  795/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  796/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  797/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  798/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  799/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
step  800/800: percep_loss 0.17 latent_dist_reg 1.05 loss 0.18 
Elapsed: 177.6 s
In [ ]:
## Fei Fei's Inpainting
tar = "/content/gdrive/MyDrive/input_img/inputs/fei_fei_li_original.png"
outdir = "/content/gdrive/MyDrive/input_img/fei/with 1200 and 0.3"

fei_loss = invert_image(INPAINTING_DEGRADATION,tar,outdir,"Fei Fei",num_steps=800, latent_dist_reg_weight=0.1)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  781/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  782/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  783/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  784/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  785/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  786/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  787/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  788/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  789/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  790/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  791/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  792/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  793/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  794/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  795/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  796/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  797/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  798/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  799/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
step  800/800: percep_loss 0.16 latent_dist_reg 0.32 loss 0.19 
Elapsed: 143.4 s
In [ ]:

In [ ]:
## Tzlil's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/Inpainting/with 800 and 0.1"

tzlil_loss = invert_image(INPAINTING_DEGRADATION, tar,outdir, "Tzlil Masking",num_steps=800,latent_dist_reg_weight=0.1)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  781/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  782/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  783/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  784/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  785/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  786/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  787/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  788/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  789/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  790/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  791/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  792/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  793/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  794/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  795/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  796/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  797/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  798/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  799/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
step  800/800: percep_loss 0.13 latent_dist_reg 0.31 loss 0.16 
Elapsed: 137.6 s
In [ ]:
## Tzlil's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/Inpainting/with 800 and 0.001"

tzlil_loss = invert_image(INPAINTING_DEGRADATION, tar,outdir, "Tzlil Masking",num_steps=800)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  781/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  782/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  783/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  784/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  785/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  786/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  787/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  788/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  789/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  790/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  791/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  792/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  793/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  794/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  795/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  796/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  797/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  798/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  799/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
step  800/800: percep_loss 0.15 latent_dist_reg 1.01 loss 0.15 
Elapsed: 138.0 s
In [ ]:
## Tirtza's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/Inpainting/ with 800 and 0.1"

tirtz_loss = invert_image(INPAINTING_DEGRADATION, tar,outdir, "Tirtsa Inpainting",num_steps=800,latent_dist_reg_weight=0.1)
Loading networks from "https://nvlabs-fi-cdn.nvidia.com/stylegan2-ada/pretrained/ffhq.pkl"...
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-56-1b35fd5e2e29> in <module>()
      3 outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/Inpainting/ with 800 and 0.1"
      4 
----> 5 tirtz_loss = invert_image(INPAINTING_DEGRADATION, tar,outdir, "Tirtsa Inpainting",num_steps=800,latent_dist_reg_weight=0.1)

<ipython-input-27-40a3fc56d9d9> in invert_image(degradation_mode, target_fname, outdir, title, seed, num_steps, latent_dist_reg_weight, is_input_degraded)
     37     if not is_input_degraded:
     38       if  degradation_mode == INPAINTING_DEGRADATION:
---> 39         target_images = inpainting_mode(target_images)
     40 
     41       elif degradation_mode == GRAYSCALE_DEGRADATION:

<ipython-input-55-5819bfb2df06> in inpainting_mode(img)
     36   mask3d[0,2,:,:] = mask
     37 
---> 38   mean_mask = (mask - 1)*(-1)*img/(MASK_HEIGHT*MASK_WIDTH)
     39   img = img.cpu()*mask + mean_mask
     40   return img

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
In [ ]:
## Tirtza's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/Inpainting/ with 800 and 0.01"
tirtz_loss = invert_image(INPAINTING_DEGRADATION, tar,outdir, "Tirtsa Inpainting",num_steps=800,latent_dist_reg_weight=0.01)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  781/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  782/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  783/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  784/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  785/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  786/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  787/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  788/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  789/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  790/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  791/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  792/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  793/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  794/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  795/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  796/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  797/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  798/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  799/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
step  800/800: percep_loss 0.16 latent_dist_reg 0.83 loss 0.16 
Elapsed: 139.1 s
In [ ]:
## Tirtza's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/reconstruction/ with 1000 and 0.001"
tirtz_loss = invert_image("", tar,outdir, "reconstruction",num_steps=1000,latent_dist_reg_weight=0.001)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step   61/1000: percep_loss 0.52 latent_dist_reg 0.35 loss 62.48
step   62/1000: percep_loss 0.53 latent_dist_reg 0.36 loss 84.90
step   63/1000: percep_loss 0.52 latent_dist_reg 0.36 loss 116.37
step   64/1000: percep_loss 0.50 latent_dist_reg 0.37 loss 126.47
step   65/1000: percep_loss 0.51 latent_dist_reg 0.37 loss 129.71
step   66/1000: percep_loss 0.54 latent_dist_reg 0.37 loss 119.90
step   67/1000: percep_loss 0.52 latent_dist_reg 0.38 loss 96.05
step   68/1000: percep_loss 0.52 latent_dist_reg 0.38 loss 72.79
step   69/1000: percep_loss 0.50 latent_dist_reg 0.38 loss 47.97
step   70/1000: percep_loss 0.52 latent_dist_reg 0.39 loss 29.32
step   71/1000: percep_loss 0.51 latent_dist_reg 0.39 loss 19.25
step   72/1000: percep_loss 0.51 latent_dist_reg 0.39 loss 16.06
step   73/1000: percep_loss 0.49 latent_dist_reg 0.40 loss 20.79
step   74/1000: percep_loss 0.51 latent_dist_reg 0.40 loss 25.02
In [ ]:
## Tirtza's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/Inpainting/ test"
tirtz_loss = invert_image(INPAINTING_DEGRADATION, tar,outdir, "Tirtsa Inpainting",num_steps=1600,latent_dist_reg_weight=0.7)
Loading networks from "https://nvlabs-fi-cdn.nvidia.com/stylegan2-ada/pretrained/ffhq.pkl"...
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-58-669b2c1e47f6> in <module>()
      2 tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
      3 outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/Inpainting/ test"
----> 4 tirtz_loss = invert_image(INPAINTING_DEGRADATION, tar,outdir, "Tirtsa Inpainting",num_steps=1600,latent_dist_reg_weight=0.7)

<ipython-input-27-40a3fc56d9d9> in invert_image(degradation_mode, target_fname, outdir, title, seed, num_steps, latent_dist_reg_weight, is_input_degraded)
     37     if not is_input_degraded:
     38       if  degradation_mode == INPAINTING_DEGRADATION:
---> 39         target_images = inpainting_mode(target_images)
     40 
     41       elif degradation_mode == GRAYSCALE_DEGRADATION:

<ipython-input-57-4f3583d14de6> in inpainting_mode(img)
     36   mask3d[0,2,:,:] = mask
     37 
---> 38   mean_mask = (mask - torch.ones((0,3,img.shape[2],img.shape[3])))*(-1)*img/(MASK_HEIGHT*MASK_WIDTH)
     39   img = img.cpu()*mask + mean_mask
     40   return img

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
In [ ]:
## Tirtza's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tirtsa/tir_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tirtsa/reconstruction/ with 1000 and 0.1"
tirtz_loss = invert_image("", tar,outdir, "reconstruction",num_steps=1000,latent_dist_reg_weight=0.1)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  981/1000: percep_loss 0.14 latent_dist_reg 0.34 loss 0.17 
step  982/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  983/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  984/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  985/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  986/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  987/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  988/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  989/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  990/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  991/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  992/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  993/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  994/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  995/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  996/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  997/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  998/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step  999/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
step 1000/1000: percep_loss 0.14 latent_dist_reg 0.33 loss 0.17 
Elapsed: 163.1 s
In [ ]:
## Tzlil's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/reconstuction/with 1000 and 0.001"

tzlil_loss = invert_image("", tar,outdir, "Tzlil recuonstruction",num_steps=1000,latent_dist_reg_weight=0.1)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  981/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  982/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  983/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  984/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  985/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  986/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  987/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  988/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  989/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  990/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  991/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  992/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  993/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  994/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  995/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  996/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  997/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  998/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step  999/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
step 1000/1000: percep_loss 0.13 latent_dist_reg 0.30 loss 0.16 
Elapsed: 160.4 s
In [ ]:
## Tzlil's reconstruction:
tar = "/content/gdrive/MyDrive/input_img/Tzlil/africa_tzlil_aligned.png"
outdir = "/content/gdrive/MyDrive/input_img/Tzlil/reconstuction/with 1000 and 0.001"

tzlil_loss = invert_image("", tar,outdir, "Tzlil recuonstruction",num_steps=1000)
Original Image
Original Degraded Image
Generated Image
Generated Degraded Image
step  981/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  982/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  983/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  984/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  985/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  986/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  987/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  988/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  989/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  990/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  991/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  992/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  993/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  994/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  995/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  996/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  997/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  998/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step  999/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
step 1000/1000: percep_loss 0.15 latent_dist_reg 1.13 loss 0.15 
Elapsed: 180.6 s
In [5]:
!jupyter nbconvert  Tzlil_IMPR_Ex5_Deep_Style_Image_Prior_2021_2022_.ipynb --to html
[NbConvertApp] WARNING | pattern 'Tzlil_IMPR_Ex5_Deep_Style_Image_Prior_2021_2022_.ipynb' matched no files
This application is used to convert notebook files (*.ipynb)
        to various other formats.

        WARNING: THE COMMANDLINE INTERFACE MAY CHANGE IN FUTURE RELEASES.

Options
=======
The options below are convenience aliases to configurable class-options,
as listed in the "Equivalent to" description-line of the aliases.
To see all configurable class-options for some <cmd>, use:
    <cmd> --help-all

--debug
    set log level to logging.DEBUG (maximize logging output)
    Equivalent to: [--Application.log_level=10]
--show-config
    Show the application's configuration (human-readable format)
    Equivalent to: [--Application.show_config=True]
--show-config-json
    Show the application's configuration (json format)
    Equivalent to: [--Application.show_config_json=True]
--generate-config
    generate default config file
    Equivalent to: [--JupyterApp.generate_config=True]
-y
    Answer yes to any questions instead of prompting.
    Equivalent to: [--JupyterApp.answer_yes=True]
--execute
    Execute the notebook prior to export.
    Equivalent to: [--ExecutePreprocessor.enabled=True]
--allow-errors
    Continue notebook execution even if one of the cells throws an error and include the error message in the cell output (the default behaviour is to abort conversion). This flag is only relevant if '--execute' was specified, too.
    Equivalent to: [--ExecutePreprocessor.allow_errors=True]
--stdin
    read a single notebook file from stdin. Write the resulting notebook with default basename 'notebook.*'
    Equivalent to: [--NbConvertApp.from_stdin=True]
--stdout
    Write notebook output to stdout instead of files.
    Equivalent to: [--NbConvertApp.writer_class=StdoutWriter]
--inplace
    Run nbconvert in place, overwriting the existing notebook (only 
            relevant when converting to notebook format)
    Equivalent to: [--NbConvertApp.use_output_suffix=False --NbConvertApp.export_format=notebook --FilesWriter.build_directory=]
--clear-output
    Clear output of current file and save in place, 
            overwriting the existing notebook.
    Equivalent to: [--NbConvertApp.use_output_suffix=False --NbConvertApp.export_format=notebook --FilesWriter.build_directory= --ClearOutputPreprocessor.enabled=True]
--no-prompt
    Exclude input and output prompts from converted document.
    Equivalent to: [--TemplateExporter.exclude_input_prompt=True --TemplateExporter.exclude_output_prompt=True]
--no-input
    Exclude input cells and output prompts from converted document. 
            This mode is ideal for generating code-free reports.
    Equivalent to: [--TemplateExporter.exclude_output_prompt=True --TemplateExporter.exclude_input=True]
--log-level=<Enum>
    Set the log level by value or name.
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 30
    Equivalent to: [--Application.log_level]
--config=<Unicode>
    Full path of a config file.
    Default: ''
    Equivalent to: [--JupyterApp.config_file]
--to=<Unicode>
    The export format to be used, either one of the built-in formats
            ['asciidoc', 'custom', 'html', 'latex', 'markdown', 'notebook', 'pdf', 'python', 'rst', 'script', 'slides']
            or a dotted object name that represents the import path for an
            `Exporter` class
    Default: 'html'
    Equivalent to: [--NbConvertApp.export_format]
--template=<Unicode>
    Name of the template file to use
    Default: ''
    Equivalent to: [--TemplateExporter.template_file]
--writer=<DottedObjectName>
    Writer class used to write the 
                                        results of the conversion
    Default: 'FilesWriter'
    Equivalent to: [--NbConvertApp.writer_class]
--post=<DottedOrNone>
    PostProcessor class used to write the
                                        results of the conversion
    Default: ''
    Equivalent to: [--NbConvertApp.postprocessor_class]
--output=<Unicode>
    overwrite base name use for output files.
                can only be used when converting one notebook at a time.
    Default: ''
    Equivalent to: [--NbConvertApp.output_base]
--output-dir=<Unicode>
    Directory to write output(s) to. Defaults
                                  to output to the directory of each notebook. To recover
                                  previous default behaviour (outputting to the current 
                                  working directory) use . as the flag value.
    Default: ''
    Equivalent to: [--FilesWriter.build_directory]
--reveal-prefix=<Unicode>
    The URL prefix for reveal.js (version 3.x).
            This defaults to the reveal CDN, but can be any url pointing to a copy 
            of reveal.js. 
            For speaker notes to work, this must be a relative path to a local 
            copy of reveal.js: e.g., "reveal.js".
            If a relative path is given, it must be a subdirectory of the
            current directory (from which the server is run).
            See the usage documentation
            (https://nbconvert.readthedocs.io/en/latest/usage.html#reveal-js-html-slideshow)
            for more details.
    Default: ''
    Equivalent to: [--SlidesExporter.reveal_url_prefix]
--nbformat=<Enum>
    The nbformat version to write.
            Use this to downgrade notebooks.
    Choices: any of [1, 2, 3, 4]
    Default: 4
    Equivalent to: [--NotebookExporter.nbformat_version]

Examples
--------

    The simplest way to use nbconvert is

            > jupyter nbconvert mynotebook.ipynb

            which will convert mynotebook.ipynb to the default format (probably HTML).

            You can specify the export format with `--to`.
            Options include ['asciidoc', 'custom', 'html', 'latex', 'markdown', 'notebook', 'pdf', 'python', 'rst', 'script', 'slides'].

            > jupyter nbconvert --to latex mynotebook.ipynb

            Both HTML and LaTeX support multiple output templates. LaTeX includes
            'base', 'article' and 'report'.  HTML includes 'basic' and 'full'. You
            can specify the flavor of the format used.

            > jupyter nbconvert --to html --template basic mynotebook.ipynb

            You can also pipe the output to stdout, rather than a file

            > jupyter nbconvert mynotebook.ipynb --stdout

            PDF is generated via latex

            > jupyter nbconvert mynotebook.ipynb --to pdf

            You can get (and serve) a Reveal.js-powered slideshow

            > jupyter nbconvert myslides.ipynb --to slides --post serve

            Multiple notebooks can be given at the command line in a couple of 
            different ways:

            > jupyter nbconvert notebook*.ipynb
            > jupyter nbconvert notebook1.ipynb notebook2.ipynb

            or you can specify the notebooks list in a config file, containing::

                c.NbConvertApp.notebooks = ["my_notebook.ipynb"]

            > jupyter nbconvert --config mycfg.py

To see all available configurables, use `--help-all`.

In [ ]:

In [4]:
from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive
In [6]:
!jupyter nbconvert  /content/drive/MyDrive/StyleGAN/Tzlil_IMPR_Ex5_Deep_Style_Image_Prior_2021_2022_.ipynb --to html
[NbConvertApp] Converting notebook /content/drive/MyDrive/StyleGAN/Tzlil_IMPR_Ex5_Deep_Style_Image_Prior_2021_2022_.ipynb to html
[NbConvertApp] ERROR | Notebook JSON is invalid: data must be valid exactly by one of oneOf definition

Failed validating <unset> in notebook:

On instance:
<unset>
[NbConvertApp] Writing 14574491 bytes to /content/drive/MyDrive/StyleGAN/Tzlil_IMPR_Ex5_Deep_Style_Image_Prior_2021_2022_.html
In [ ]: